package com.solocredit.finance.utils.language;

import java.util.Locale;

/**
 * MullaFlow
 *
 * @Author wwdeng
 * @CreateTime: 2024/9/24 14:10
 * @Annotation：语种契约类
 */
public class LocaleContract {
    /** 中文 */
    private static volatile Locale sChineseLocale;

    public static Locale getChineseLocale() {
        if (sChineseLocale == null) {
            sChineseLocale = Locale.CHINESE;
        }
        return sChineseLocale;
    }

    /** 简体中文 */
    private static volatile Locale sSimplifiedChineseLocale;

    public static Locale getSimplifiedChineseLocale() {
        if (sSimplifiedChineseLocale == null) {
            sSimplifiedChineseLocale = Locale.SIMPLIFIED_CHINESE;
        }
        return sSimplifiedChineseLocale;
    }

    /** 繁体中文 */
    private static volatile Locale sTraditionalChineseLocale;

    public static Locale getTraditionalChineseLocale() {
        if (sTraditionalChineseLocale == null) {
            sTraditionalChineseLocale = Locale.TRADITIONAL_CHINESE;
        }
        return sTraditionalChineseLocale;
    }

    public static Locale getTaiWanLocale() {
        return getTraditionalChineseLocale();
    }

    /** 新加坡 */
    private static volatile Locale sSingaporeLocale ;

    public static Locale getSingaporeLocale() {
        if (sSimplifiedChineseLocale == null) {
            sSingaporeLocale = new Locale("zh", "SG");
        }
        return sSingaporeLocale;
    }

    /** 英语 */
    private static volatile Locale sEnglishLocale;

    public static Locale getEnglishLocale() {
        if (sEnglishLocale == null) {
            sEnglishLocale = Locale.ENGLISH;
        }
        return sEnglishLocale;
    }

    /** 法语 */
    private static volatile Locale sFrenchLocale;

    public static Locale getFrenchLocale() {
        if (sFrenchLocale == null) {
            sFrenchLocale = Locale.FRENCH;
        }
        return sFrenchLocale;
    }

    /** 德语 */
    private static volatile Locale sGermanLocale;

    public static Locale getGermanLocale() {
        if (sGermanLocale == null) {
            sGermanLocale = Locale.GERMAN;
        }
        return sGermanLocale;
    }

    /** 意大利语 */
    private static volatile Locale sItalianLocale;

    public static Locale getItalianLocale() {
        if (sItalianLocale == null) {
            sItalianLocale = Locale.ITALIAN;
        }
        return sItalianLocale;
    }

    /** 日语 */
    private static volatile Locale sJapaneseLocale;

    public static Locale getJapaneseLocale() {
        if (sJapaneseLocale == null) {
            sJapaneseLocale = Locale.JAPANESE;
        }
        return sJapaneseLocale;
    }

    /** 韩语 */
    private static volatile Locale sKoreanLocale;

    public static Locale getKoreanLocale() {
        if (sKoreanLocale == null) {
            sKoreanLocale = Locale.KOREAN;
        }
        return sKoreanLocale;
    }

    /** 越南语 */
    private static volatile Locale sVietnameseLocale;

    public static Locale getVietnameseLocale() {
        if (sVietnameseLocale == null) {
            sVietnameseLocale = new Locale("vi");
        }
        return sVietnameseLocale;
    }

    /** 荷兰语 */
    private static volatile Locale sDutchLocale;

    public static Locale getDutchLocale() {
        if (sDutchLocale == null) {
            sDutchLocale = new Locale("af");
        }
        return sDutchLocale;
    }

    /** 阿尔巴尼亚语 */
    private static volatile Locale sAlbanianLocale;

    public static Locale getAlbanianLocale() {
        if (sAlbanianLocale == null) {
            sAlbanianLocale = new Locale("sq");
        }
        return sAlbanianLocale;
    }

    /** 阿拉伯语 */
    private static volatile Locale sArabicLocale;

    public static Locale getArabicLocale() {
        if (sArabicLocale == null) {
            sArabicLocale = new Locale("ar");
        }
        return sArabicLocale;
    }

    /** 亚美尼亚语 */
    private static volatile Locale sArmenianLocale;

    public static Locale getArmenianLocale() {
        if (sArmenianLocale == null) {
            sArmenianLocale = new Locale("hy");
        }
        return sArmenianLocale;
    }

    /** 阿塞拜疆语 */
    private static volatile Locale sAzerbaijaniLocale;

    public static Locale getAzerbaijaniLocale() {
        if (sAzerbaijaniLocale == null) {
            sAzerbaijaniLocale = new Locale("az");
        }
        return sAzerbaijaniLocale;
    }

    /** 巴斯克语 */
    private static volatile Locale sBasqueLocale;

    public static Locale getBasqueLocale() {
        if (sBasqueLocale == null) {
            sBasqueLocale = new Locale("eu");
        }
        return sBasqueLocale;
    }

    /** 白俄罗斯 */
    private static volatile Locale sBelarusianLocale;

    public static Locale getBelarusianLocale() {
        if (sBelarusianLocale == null) {
            sBelarusianLocale = new Locale("be");
        }
        return sBelarusianLocale;
    }

    /** 保加利亚 */
    private static volatile Locale sBulgariaLocale;

    public static Locale getBulgariaLocale() {
        if (sBulgariaLocale == null) {
            sBulgariaLocale = new Locale("bg");
        }
        return sBulgariaLocale;
    }

    /** 加泰罗尼亚 */
    private static volatile Locale sCatalonianLocale;

    public static Locale getCatalonianLocale() {
        if (sCatalonianLocale == null) {
            sCatalonianLocale = new Locale("ca");
        }
        return sCatalonianLocale;
    }

    /** 克罗埃西亚 */
    private static volatile Locale sCroatiaLocale;

    public static Locale getCroatiaLocale() {
        if (sCroatiaLocale == null) {
            sCroatiaLocale = new Locale("hr");
        }
        return sCroatiaLocale;
    }

    /** 捷克 */
    private static volatile Locale sCzechRepublicLocale;

    public static Locale getCzechRepublicLocale() {
        if (sCzechRepublicLocale == null) {
            sCzechRepublicLocale = new Locale("cs");
        }
        return sCzechRepublicLocale;
    }

    /** 丹麦文 */
    private static volatile Locale sDanishLocale;

    public static Locale getDanishLocale() {
        if (sDanishLocale == null) {
            sDanishLocale = new Locale("da");
        }
        return sDanishLocale;
    }

    /** 迪维希语 */
    private static volatile Locale sDhivehiLocale;

    public static Locale getDhivehiLocale() {
        if (sDhivehiLocale == null) {
            sDhivehiLocale = new Locale("div");
        }
        return sDhivehiLocale;
    }

    /** 荷兰 */
    private static volatile Locale sNetherlandsLocale;

    public static Locale getNetherlandsLocale() {
        if (sNetherlandsLocale == null) {
            sNetherlandsLocale = new Locale("nl");
        }
        return sNetherlandsLocale;
    }

    /** 法罗语 */
    private static volatile Locale sFaroeseLocale;

    public static Locale getFaroeseLocale() {
        if (sFaroeseLocale == null) {
            sFaroeseLocale = new Locale("fo");
        }
        return sFaroeseLocale;
    }

    /** 爱沙尼亚 */
    private static volatile Locale sEstoniaLocale;

    public static Locale getEstoniaLocale() {
        if (sEstoniaLocale == null) {
            sEstoniaLocale = new Locale("et");
        }
        return sEstoniaLocale;
    }

    /** 波斯语 */
    private static volatile Locale sFarsiLocale;

    public static Locale getFarsiLocale() {
        if (sFarsiLocale == null) {
            sFarsiLocale = new Locale("fa");
        }
        return sFarsiLocale;
    }

    /** 芬兰语 */
    private static volatile Locale sFinnishLocale;

    public static Locale getFinnishLocale() {
        if (sFinnishLocale == null) {
            sFinnishLocale = new Locale("fi");
        }
        return sFinnishLocale;
    }

    /** 加利西亚 */
    private static volatile Locale sGaliciaLocale;

    public static Locale getGaliciaLocale() {
        if (sGaliciaLocale == null) {
            sGaliciaLocale = new Locale("gl");
        }
        return sGaliciaLocale;
    }

    /** 格鲁吉亚州 */
    private static volatile Locale sGeorgiaLocale;

    public static Locale getGeorgiaLocale() {
        if (sGeorgiaLocale == null) {
            sGeorgiaLocale = new Locale("ka");
        }
        return sGeorgiaLocale;
    }

    /** 希腊 */
    private static volatile Locale sGreeceLocale;

    public static Locale getGreeceLocale() {
        if (sGreeceLocale == null) {
            sGreeceLocale = new Locale("el");
        }
        return sGreeceLocale;
    }

    /** 古吉拉特语 */
    private static volatile Locale sGujaratiLocale;

    public static Locale getGujaratiLocale() {
        if (sGujaratiLocale == null) {
            sGujaratiLocale = new Locale("gu");
        }
        return sGujaratiLocale;
    }

    /** 希伯来 */
    private static volatile Locale sHebrewLocale;

    public static Locale getHebrewLocale() {
        if (sHebrewLocale == null) {
            sHebrewLocale = new Locale("he");
        }
        return sHebrewLocale;
    }

    /** 北印度语 */
    private static volatile Locale sHindiLocale;

    public static Locale getHindiLocale() {
        if (sHindiLocale == null) {
            sHindiLocale = new Locale("hi");
        }
        return sHindiLocale;
    }

    /** 匈牙利 */
    private static volatile Locale sHungaryLocale;

    public static Locale getHungaryLocale() {
        if (sHungaryLocale == null) {
            sHungaryLocale = new Locale("hu");
        }
        return sHungaryLocale;
    }

    /** 冰岛语 */
    private static volatile Locale sIcelandicLocale;

    public static Locale getIcelandicLocale() {
        if (sIcelandicLocale == null) {
            sIcelandicLocale = new Locale("is");
        }
        return sIcelandicLocale;
    }

    /** 印尼 */
    private static volatile Locale sIndonesiaLocale;

    public static Locale getIndonesiaLocale() {
        if (sIndonesiaLocale == null) {
            sIndonesiaLocale = new Locale("id");
        }
        return sIndonesiaLocale;
    }

    /** 卡纳达语 */
    private static volatile Locale sKannadaLocale;

    public static Locale getKannadaLocale() {
        if (sKannadaLocale == null) {
            sKannadaLocale = new Locale("kn");
        }
        return sKannadaLocale;
    }

    /** 哈萨克语 */
    private static volatile Locale sKazakhLocale;

    public static Locale getKazakhLocale() {
        if (sKazakhLocale == null) {
            sKazakhLocale = new Locale("kk");
        }
        return sKazakhLocale;
    }

    /** 贡根文 */
    private static volatile Locale sKonkaniLocale;

    public static Locale getKonkaniLocale() {
        if (sKonkaniLocale == null) {
            sKonkaniLocale = new Locale("kok");
        }
        return sKonkaniLocale;
    }

    /** 吉尔吉斯斯坦 */
    private static volatile Locale sKyrgyzLocale;

    public static Locale getKyrgyzLocale() {
        if (sKyrgyzLocale == null) {
            sKyrgyzLocale = new Locale("ky");
        }
        return sKyrgyzLocale;
    }

    /** 拉脱维亚 */
    private static volatile Locale sLatviaLocale;

    public static Locale getLatviaLocale() {
        if (sLatviaLocale == null) {
            sLatviaLocale = new Locale("lv");
        }
        return sLatviaLocale;
    }

    /** 立陶宛 */
    private static volatile Locale sLithuaniaLocale;

    public static Locale getLithuaniaLocale() {
        if (sLithuaniaLocale == null) {
            sLithuaniaLocale = new Locale("lt");
        }
        return sLithuaniaLocale;
    }

    /** 马其顿 */
    private static volatile Locale sMacedoniaLocale;

    public static Locale getMacedoniaLocale() {
        if (sMacedoniaLocale == null) {
            sMacedoniaLocale = new Locale("mk");
        }
        return sMacedoniaLocale;
    }

    /** 马来 */
    private static volatile Locale sMalayLocale;

    public static Locale getMalayLocale() {
        if (sMalayLocale == null) {
            sMalayLocale = new Locale("ms");
        }
        return sMalayLocale;
    }

    /** 马拉地语 */
    private static volatile Locale sMarathiLocale;

    public static Locale getMarathiLocale() {
        if (sMarathiLocale == null) {
            sMarathiLocale = new Locale("mr");
        }
        return sMarathiLocale;
    }

    /** 蒙古 */
    private static volatile Locale sMongoliaLocale;

    public static Locale getMongoliaLocale() {
        if (sMongoliaLocale == null) {
            sMongoliaLocale = new Locale("mn");
        }
        return sMongoliaLocale;
    }

    /** 挪威 */
    private static volatile Locale sNorwayLocale;

    public static Locale getNorwayLocale() {
        if (sNorwayLocale == null) {
            sNorwayLocale = new Locale("no");
        }
        return sNorwayLocale;
    }

    /** 波兰 */
    private static volatile Locale sPolandLocale;

    public static Locale getPolandLocale() {
        if (sPolandLocale == null) {
            sPolandLocale = new Locale("pl");
        }
        return sPolandLocale;
    }

    /** 葡萄牙语 */
    private static volatile Locale sPortugueseLocale;

    public static Locale getPortugalLocale() {
        if (sPortugueseLocale == null) {
            sPortugueseLocale = new Locale("pt");
        }
        return sPortugueseLocale;
    }

    /** 旁遮普语（印度和巴基斯坦语） */
    private static volatile Locale sPunjabLocale;

    public static Locale getPunjabLocale() {
        if (sPunjabLocale == null) {
            sPunjabLocale = new Locale("pa");
        }
        return sPunjabLocale;
    }

    /** 罗马尼亚语 */
    private static volatile Locale sRomanianLocale;

    public static Locale getRomanianLocale() {
        if (sRomanianLocale == null) {
            sRomanianLocale = new Locale("ro");
        }
        return sRomanianLocale;
    }

    /** 俄国 */
    private static volatile Locale sRussiaLocale;

    public static Locale getRussiaLocale() {
        if (sRussiaLocale == null) {
            sRussiaLocale = new Locale("ru");
        }
        return sRussiaLocale;
    }

    /** 梵文 */
    private static volatile Locale sSanskritLocale;

    public static Locale getSanskritLocale() {
        if (sSanskritLocale == null) {
            sSanskritLocale = new Locale("sa");
        }
        return sSanskritLocale;
    }

    /** 斯洛伐克 */
    private static volatile Locale sSlovakiaLocale;

    public static Locale getSlovakiaLocale() {
        if (sSlovakiaLocale == null) {
            sSlovakiaLocale = new Locale("sk");
        }
        return sSlovakiaLocale;
    }

    /** 斯洛文尼亚 */
    private static volatile Locale sSloveniaLocale;

    public static Locale getSloveniaLocale() {
        if (sSloveniaLocale == null) {
            sSloveniaLocale = new Locale("sl");
        }
        return sSloveniaLocale;
    }

    /** 西班牙语 */
    private static volatile Locale sSpanishLocale;

    public static Locale getSpainLocale() {
        if (sSpanishLocale == null) {
            sSpanishLocale = new Locale("es");
        }
        return sSpanishLocale;
    }

    /** 斯瓦希里语 */
    private static volatile Locale sSwahiliLocale;

    public static Locale getSwahiliLocale() {
        if (sSwahiliLocale == null) {
            sSwahiliLocale = new Locale("sw");
        }
        return sSwahiliLocale;
    }

    /** 瑞典 */
    private static volatile Locale sSwedenLocale;

    public static Locale getSwedenLocale() {
        if (sSwedenLocale == null) {
            sSwedenLocale = new Locale("sv");
        }
        return sSwedenLocale;
    }

    /** 叙利亚语 */
    private static volatile Locale sSyriacLocale;

    public static Locale getSyriacLocale() {
        if (sSyriacLocale == null) {
            sSyriacLocale = new Locale("syr");
        }
        return sSyriacLocale;
    }

    /** 坦米尔 */
    private static volatile Locale sTamilLocale;

    public static Locale getTamilLocale() {
        if (sTamilLocale == null) {
            sTamilLocale = new Locale("ta");
        }
        return sTamilLocale;
    }

    /** 泰语 */
    private static volatile Locale sThailandLocale;

    public static Locale getThailandLocale() {
        if (sThailandLocale == null) {
            sThailandLocale = new Locale("th");
        }
        return sThailandLocale;
    }

    /** 鞑靼语 */
    private static volatile Locale sTatarLocale;

    public static Locale getTatarLocale() {
        if (sTatarLocale == null) {
            sTatarLocale = new Locale("tt");
        }
        return sTatarLocale;
    }

    /** 泰卢固语 */
    private static volatile Locale sTeluguLocale;

    public static Locale getTeluguLocale() {
        if (sTeluguLocale == null) {
            sTeluguLocale = new Locale("te");
        }
        return sTeluguLocale;
    }

    /** 土耳其语 */
    private static volatile Locale sTurkishLocale;

    public static Locale getTurkishLocale() {
        if (sTurkishLocale == null) {
            sTurkishLocale = new Locale("tr");
        }
        return sTurkishLocale;
    }

    /** 乌克兰 */
    private static volatile Locale sUkraineLocale;

    public static Locale getUkraineLocale() {
        if (sUkraineLocale == null) {
            sUkraineLocale = new Locale("uk");
        }
        return sUkraineLocale;
    }

    /** 乌尔都语 */
    private static volatile Locale sUrduLocale;

    public static Locale getUrduLocale() {
        if (sUrduLocale == null) {
            sUrduLocale = new Locale("ur");
        }
        return sUrduLocale;
    }

    /** 乌兹别克语 */
    private static volatile Locale sUzbekLocale;

    public static Locale getUzbekLocale() {
        if (sUzbekLocale == null) {
            sUzbekLocale = new Locale("uz");
        }
        return sUzbekLocale;
    }
}
